package com.gitee.sop.layui.adminserver.module.background.develop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.sop.layui.adminserver.module.background.develop.dto.SysFunctionDTO;
import com.gitee.sop.layui.adminserver.module.background.develop.entity.SysFunction;
import com.gitee.sop.layui.adminserver.module.background.develop.vo.SysFunctionTreeTableVo;
import com.gitee.sop.layui.adminserver.module.base.bo.ZTreeNode;

import java.util.List;

/**
 * com.zch.admin.base.entity.SysFunction模型业务接口
 *
 * @author: admin
 * @date: 2019-11-13
 * @version: 1.0.0
 */
public interface SysFunctionService extends IService<SysFunction> {

    /**
     * 查询功能的节点树
     *
     * @return
     */
    List<ZTreeNode> searchTreeList();

    /**
     * 查询功能的表格树
     *
     * @return
     */
    List<SysFunctionTreeTableVo> searchTreeTableList();

    /**
     * 通过id批量更新数据
     *
     * @param ids   id数组
     * @param query 更新参数
     */
    void updateBatchById(Integer[] ids, SysFunctionDTO query);

    /**
     * 查询功能角色的功能树
     *
     * @param functionRoleId 功能角色id
     * @return
     */
    List<ZTreeNode> searchTreeList(Integer functionRoleId);

    /**
     * 获取指定完整uri的功能信息
     *
     * @param fullUri 完整uri
     * @return
     */
    SysFunction getOneByFullUri(String fullUri);

    /**
     * 查询指定功能
     *
     * @param functionIdList 功能id列表
     * @return
     */
    List<SysFunction> selectAllInId(List<Integer> functionIdList);
}